package com.arica.framework.mq.processor;

import com.alibaba.fastjson.JSONObject;
import com.arica.framework.dto.MqConfigDTO;
import com.arica.mq.consumer.processor.MessageProcessor;
import com.arica.project.mq.domain.TestDTO;
import org.apache.rocketmq.common.message.Message;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;

//@Component
public class TestProcessor implements MessageProcessor<TestDTO> {
    @Override
    public void process(TestDTO data) {
        System.out.println(JSONObject.toJSONString(data));
    }

    @Override
    public boolean needIdempotent() {
        return true;
    }

    @Override
    public String getProcessType() {
        return "test";
    }

    @Override
    public TestDTO convertData(Object sourceData) {
        return (TestDTO)sourceData;
    }

    @Override
    public String getBusinessKey(TestDTO data, Message message) {
        return data.getStr();
    }

    @Override
    public List<MqConfigDTO> getMqConfig() {
        List<MqConfigDTO> res = new ArrayList<>();
        MqConfigDTO configDTO = new MqConfigDTO();
        configDTO.setTopic("topic_syn");
        configDTO.setTag("tag_syn");
        configDTO.setClassName(TestDTO.class.getName());
        res.add(configDTO);
        return res;
    }
}
